// 导入必要的类型
import type { AddressItem } from '@/types/address'
// 导入 Pinia 的 defineStore 函数和 Vue 3 的 ref 函数
import { defineStore } from 'pinia'
import { ref } from 'vue'

// 创建地址管理的 Pinia store 模块
export const useAddressStore = defineStore('address', () => {
  // 创建一个响应式的 ref 变量 selectedAddress，用于存储选中的收货地址
  const selectedAddress = ref<AddressItem>()

  // 创建一个函数 changeSelectedAddress，用于修改选中的收货地址
  const changeSelectedAddress = (val: AddressItem) => {
    // 将传入的地址对象赋值给 selectedAddress.value
    selectedAddress.value = val
  }

  // 返回该模块中的状态和方法，以便在组件中使用
  return { selectedAddress, changeSelectedAddress }
})
